A hash function is one that can map data of arbitrary size to data of fixed size. Hash tables are data structures widely used in computing for rapid data lookup. Secure hash functions allows easy verification that input data maps to a given hash value, but deliberately creates difficulty in reconstructing the input data from the hash value.